﻿@using Subfaculty.Helpers
@model Subfaculty.ViewModels.LoadDistributionViewModel
@{
    ViewBag.Title = "Распределение нагрузки";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<script type="text/javascript">
    // Выбор преподавателя
    function initTeacherList() {
        $(".teacher").each(function (i, e) {
            $(e).click(function () {
                var teacherId = $(this).attr("id");
                $("#dististributionLoadTree").html("Подождите! Идет загрузка... <img src='../../Content/themes/throbber.gif' />");
                $("#dististributionLoadTree").load('@(Url.Action("ajaxUpdateDistrTree"))/' + teacherId, function () {
                    initDististributionTree();
                });
            });
        });
    };

    // Распределение нагрузки (главная функция)
    function distributeLoad(node) {
        var nodeType = node.attr("title");
        var teacherId = $("#dististributionLoadTree li[id^='teacher']").attr('name');
        var departmentId = '1';

        switch (nodeType) {
            case ("loadAtom"): // распределяется один атом
                var atomId = node.attr("name");
                distributeLoadAtom(atomId, teacherId, departmentId);
                break;
            case ("loadType"): // распределяется атомы одного типа нагрузки
                var paramArray = node.attr("name").split('_');
                distributeLoadType(paramArray[0], paramArray[1], teacherId, departmentId);
                break;
            case ("discipline"): // распределяется атомы одной дисциплины
                var disciplineId = node.attr("name");
                distributeLoadDiscipline(disciplineId, teacherId, departmentId);
                break;
            default:
                alert('Ошибка! Попробуйте обновить страницу!');
                break;
        }
    };

    // Распределение нагрузки (один атом)
    function distributeLoadAtom(atomId, teacherId, departmentId) {
        $("#dististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $("#notDististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $.ajax({
            url: '@(Url.Action("ajaxDistributeAtom"))/' + teacherId + '/' + atomId,
            success: function () { // обновляем деревья
                UpdateBothTree(teacherId, departmentId);
            },
            async: false
        });
    }

    // Распределение нагрузки (группа атомов, принадлежащих к одному типу (лекции, практики ...))
    function distributeLoadType(loadType, disciplineId, teacherId, departmentId) {
        $("#dististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $("#notDististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $.ajax({
            url: '@(Url.Action("ajaxDistributeLoadType"))/' + teacherId + '/' + disciplineId + '/' + loadType,
            success: function () { // обновляем деревья
                UpdateBothTree(teacherId, departmentId);
            },
            async: false
        });
    }

    // Распределение нагрузки (группа атомов, принадлежащих к одной дисциплине)
    function distributeLoadDiscipline(disciplineId, teacherId, departmentId) {
        $("#dististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $("#notDististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $.ajax({
            url: '@(Url.Action("ajaxDistributeLoadDiscipline"))/' + teacherId + '/' + disciplineId,
            success: function () { // обновляем деревья
                UpdateBothTree(teacherId, departmentId);
            },
            async: false
        });
    }

    // Удаление распределенной нагрузки (один атом)
    function deleteDistrubAtom(atomId) {
        var teacherId = $("#dististributionLoadTree li[id^='teacher']").attr('name');
        var departmentId = '1';
        $("#dististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $("#notDististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $.ajax({
            url: '@(Url.Action("ajaxDistributedAtomDelete"))/' + teacherId + '/' + atomId,
            success: function () {
                UpdateBothTree(teacherId, departmentId);
            },
            async: false
        });
    };

    // Удаление распределенной нагрузки (группа атомов, принадлежащих к одному типу (лекции, практики ...))
    function deleteDistrubLoadType(loadType, disciplineId) {
        var teacherId = $("#dististributionLoadTree li[id^='teacher']").attr('name');
        var departmentId = '1';
        $("#dististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $("#notDististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $.ajax({
            url: '@(Url.Action("ajaxDistributedLoadTypeDelete"))/' + teacherId + '/' + disciplineId + '/' + loadType,
            success: function () {
                UpdateBothTree(teacherId, departmentId);
            },
            async: false
        });
    };

    // Удаление распределенной нагрузки, принадлежащих к одной дисциплине
    function deleteDistrubLoadDiscipline(disciplineId) {
        var teacherId = $("#dististributionLoadTree li[id^='teacher']").attr('name');
        var departmentId = '1';
        $("#dististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $("#notDististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $.ajax({
            url: '@(Url.Action("ajaxDistributedLoadByDisciplineDelete"))/' + teacherId + '/' + disciplineId,
            success: function () {
                UpdateBothTree(teacherId, departmentId);
            },
            async: false
        });
    }

    function UpdateBothTree(teacherId, departmentId) {
        $("#dististributionLoadTree").load('@(Url.Action("ajaxUpdateDistrTree"))/' + teacherId, function () {
            initDististributionTree();
            $("#notDististributionLoadTree").load('@(Url.Action("ajaxUpdateNotDistrTree"))/' + departmentId, function () {
                initNotDististributionTree();
            });
        });
    }

    function UpdateDivideTree() {
        var departmentId = '1';
        $("#LoadTreeForDivide").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $("#LoadTreeForDivide").load('@(Url.Action("ajaxUpdateDivideTree"))/' + departmentId, function () {
            initDivideTree();
        });
    }

    function DivideAtom(firstAtomHours, secondAtomHours, atomId) {
        var departmentId = '1';
        $("#notDististributionLoadTree").html("Подождите! Идет обновление... <img src='../../Content/themes/throbber.gif' />");
        $.ajax({
            url: '@(Url.Action("ajaxDivideLoadAtoms"))/' + firstAtomHours + '/' + secondAtomHours + '/' + atomId,
            success: function () {
                $("#notDististributionLoadTree").load('@(Url.Action("ajaxUpdateNotDistrTree"))/' + departmentId, function () {
                    initNotDististributionTree();
                });
            },
            async: false
        });

    }   

</script>
<script src="../../Scripts/ui.spinner.js" type="text/javascript"></script>
<link href="../../Content/ui.spinner.css" rel="stylesheet" type="text/css" />
<fieldset class="main_fieldset">
    <legend class="main_legend">Распределение нагрузки</legend>
    <br />
    <div>
        <button type="button" id="btn_divideLoadAtom">
            Разделить атом</button>
    </div>
    <div id='distributionWraper'>
        <span id='notDistrSpan'>
            <div id='notDististributionLoadTree'>
                @Html.notDistributedLoadList(Model.notDistributionLoad)
            </div>
        </span>
        <div class="jstree-drop">
            <span id='distrSpan'>
                <div id='dististributionLoadTree' class="jstree-drop">
                    @Html.distributedLoadList(Model.distributionLoad, Model.currentTeacher)
                </div>
            </span>
        </div>
        <div id='teacherList'>
            @Html.teacherList(Model.teachersList)
        </div>
    </div>
</fieldset>
<style>
    #divideWraper
    {
        min-height: 350px;
        padding: 0px;
        overflow: auto;
    }
    #LoadTreeForDivide
    {
        width: 43%;
        padding: 20px;
        border: 1px solid #5c87b2;
        min-height: 300px;
        font-size: 0.8em;
        float: left;
    }
    #ChoseField
    {
        width: 43%;
        min-height: 300px;
        padding: 20px;
        border: 1px solid #5c87b2;
        font-size: 0.85em;
        float: right;
    }
    #ChoseField input[type='text']
    {
        width: 30px;
    }
    #divideParams
    {
        display: none;
    }    
</style>
<div id="dialog_DivideAtoms" title="Выберите элемент учебного плана">
    <div id='divideWraper'>
        <div id='LoadTreeForDivide'>
            @Html.LoadTreeForDivideList(Model.notDistributionLoad)
        </div>
        <div id='ChoseField'>
            <div id='divideParams'>
                <input id="div_value1" type="text" value="8" maxlength="2" />&nbsp;&nbsp; Часов у первого атома
                <br />
                <br />
                <input id="div_value2" type="text" value="8" maxlength="2" />&nbsp;&nbsp; Часов у второго атом
                <br />
                <input id="atomID" type="hidden" value="0" />
            </div>
        </div>
    </div>
</div>
